:root {
  font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
  line-height: 1.5;
  font-weight: 400;

  color-scheme: light dark;
  color: rgba(255, 255, 255, 0.87);
  background-color: #242424;

  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  font-weight: 500;
  color: #888;
  text-decoration: inherit;
}
a:hover {
  color: #535bf2;
}

body {
  margin: 0;
  padding: 0;
  overflow: hidden;
}

#app {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

#webgl {
  top: 0;
  left: 0;
  outline: none;
}

.logo {
  height: 2.5em;
  padding: 1.2em;
  will-change: filter;
  transition: filter 300ms;

  position: absolute;
  bottom: 0;
  left: 0;
}
.logo:hover {
  filter: drop-shadow(0 0 1em #ffffff);
}

.link-me {
  color: #888;
  font-size: 14px;
  position: absolute;
  bottom: 0;
  right: 50%;
  transform: translate(50%, 0%);
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
}

/* HTML: <div class="loader"></div> */
.loader-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #000;
  z-index: 99999;
  user-select: none;
  transition: background-color 1s;
}
.loaded {
  background-color: #0000;
  pointer-events: none;
}
.loader {
  width: 50px;
  aspect-ratio: 1;
  display: grid;
  border: 4px solid #0000;
  border-radius: 50%;
  border-right-color: #743fff;
  transition: border-right-color 1s;
  animation: l15 1s infinite linear;
}
.loader::before,
.loader::after {
  content: "";
  grid-area: 1/1;
  margin: 2px;
  border: inherit;
  border-radius: 50%;
  animation: l15 2s infinite;
}
.loader::after {
  margin: 8px;
  animation-duration: 3s;
}
@keyframes l15 {
  100% {
    transform: rotate(1turn);
  }
}

@media (prefers-color-scheme: light) {
  :root {
    color: #213547;
    background-color: #ffffff;
  }
  a:hover {
    color: #747bff;
  }
}
